{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## _*H2 dissociation curve using VQE with UCCSD*_\n",
    "\n",
    "This notebook demonstrates using Qiskit Chemistry to plot graphs of the ground state energy of the Hydrogen (H2) molecule over a range of inter-atomic distances using VQE and UCCSD. It is compared to the same energies as computed by the NumPyMinimumEigensolver. `UCCSD` should be used together with `HartreeFock` initial state."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pylab\n",
    "\n",
    "from qiskit_nature.second_q.drivers import PySCFDriver\n",
    "from qiskit_nature.second_q.formats import MoleculeInfo\n",
    "from qiskit_nature.second_q.mappers import JordanWignerMapper\n",
    "from qiskit_nature.second_q.algorithms import GroundStateEigensolver\n",
    "\n",
    "from qiskit_algorithms import NumPyMinimumEigensolver\n",
    "\n",
    "from qiskit_algorithms.optimizers import SLSQP\n",
    "\n",
    "from qiskit_nature.second_q.circuit.library import HartreeFock, UCCSD\n",
    "from qiskit_algorithms import VQE\n",
    "\n",
    "from qiskit.primitives import Estimator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "distances  = [0.5 + 0.025*x  for x in range(0, 20)]\n",
    "\n",
    "def compute_energies(algorithm, distances):\n",
    "    print(f'{algorithm}, processing step __', end='')\n",
    "\n",
    "    energies = []\n",
    "    hf_energies = []\n",
    "    estimator = Estimator()\n",
    "\n",
    "    for i, d in enumerate(distances):\n",
    "        print('\\b\\b{:2d}'.format(i), end='', flush=True)\n",
    "\n",
    "        info = MoleculeInfo([\"H\", \"H\"], [(0.0, 0.0, 0.0), (0.0, 0.0, d)])\n",
    "        driver = PySCFDriver.from_molecule(info, basis=\"sto3g\")\n",
    "        molecule = driver.run()\n",
    "        mapper = JordanWignerMapper()\n",
    "        tapered_mapper = molecule.get_tapered_mapper(mapper)\n",
    "\n",
    "        if algorithm == 'NumPyMinimumEigensolver':\n",
    "            algo = NumPyMinimumEigensolver()\n",
    "            algo.filter_criterion = molecule.get_default_filter_criterion()\n",
    "            solver = GroundStateEigensolver(mapper, algo)\n",
    "            result = solver.solve(molecule)\n",
    "            hf_energies.append(result.hartree_fock_energy)\n",
    "            energies.append(result.total_energies[0])\n",
    "\n",
    "        elif algorithm == 'VQE':\n",
    "            optimizer = SLSQP(maxiter=10000, ftol=1e-9)\n",
    "            ansatz = UCCSD(\n",
    "                molecule.num_spatial_orbitals,\n",
    "                molecule.num_particles,\n",
    "                tapered_mapper,\n",
    "                initial_state=HartreeFock(\n",
    "                    molecule.num_spatial_orbitals,\n",
    "                    molecule.num_particles,\n",
    "                    tapered_mapper,\n",
    "                ),\n",
    "            )\n",
    "            vqe = VQE(estimator, ansatz, optimizer)\n",
    "            algo = GroundStateEigensolver(tapered_mapper, vqe)\n",
    "            result = algo.solve(molecule)\n",
    "            energies.append(result.total_energies[0])\n",
    "            hf_energies.append(result.hartree_fock_energy)\n",
    "\n",
    "    print(' --- complete')\n",
    "    return hf_energies, energies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "NumPyMinimumEigensolver, processing step 19 --- complete\n",
      "VQE, processing step 19 --- complete\n"
     ]
    }
   ],
   "source": [
    "hf_energies, npme_energies = compute_energies('NumPyMinimumEigensolver', distances)\n",
    "_, vqe_energies = compute_energies('VQE', distances)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f51b4deea40>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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EE8bMGAAiqIwderUNK+vX78eRVFy/PqKohgezs7O1KtXj507d2b4/EWLFqEoCmXLlk333urVq1EUheLFixtee++999ixY0emajx69ChDhw7N1DnGcv369TQ/w6cfhw4dArL2mcWrk7Bkhp4MxW0+GypDcUKINGxsbJg2bRoPHz40yfUXLlzI3bt32b9/P4UKFaJdu3Zcu3Ytw+fb29sTHh7OwYMH07y+YMECihYtmuY1BwcHChYsmKn63NzcsLOzy9Q5xrZ9+3bu3r2b5lGtWjUga585P1BVlZSUlBxrX8KSGapXohBONhbcj0nkqNwVJ4R4SvPmzfH09GTKlCnPfP9ZwzizZs1K02MzYMAAOnbsyJdffomHhwcuLi589tlnpKSk8P7771OgQAGKFCnCwoUL07Xv4uKCp6cnFSpUYM6cOcTHx/P333+zZMkSChYsSGJiYprjO3bsSN++fQ3PLSws6NWrF7/88ovhtVu3brF792569er1ws/ypO6ZM2fi5eVFwYIFefPNN0lOTjYc89/hIEVRmDdvHu3atcPOzo6yZcty8OBBrly5QuPGjbG3t6du3bpcvXo13XWeNmrUKBo3bmx43rhxY95++21GjRqFq6srHh4ezJ8/n9jYWAYOHIijoyMlS5Zk8+bN6X6GBQsWxNPTM83D0tLymZ85JSWFkSNH4uLiQsGCBfnwww/p379/mvr0ej1TpkzB19cXW1tbKleuzJo1awzv7969G0VR2LFjB9WrV8fOzo66dety6dIlwzGnTp2iSZMmODo64uTkRLVq1Th27Jjh/bVr11K+fHmsra0pXrw4X331VbrP9USvXr3o3r17mteSk5MpVKgQS5YsyVTNmzdvplq1alhbW7Nv377nXvNVSVgyQ1YWGlqWl7vihDAaVYWkWNM81Mz1Hmu1Wr788ku+//57bt26leWPvHPnTu7cucM///zD119/zYQJE2jXrh2urq4cPnyY4cOHM2zYsBdew9bWFoCkpCS6du2KTqdjw4YNhvfDw8PZtGkTgwYNSnPeoEGDWLVqFXFxcUDq8FyrVq3w8PB4ad27du3i6tWr7Nq1i8WLF7No0SIWLVr0wnM+//xz+vXrR1BQEP7+/vTq1Ythw4Yxbtw4jh07hqqqvPXWWy+99n8tXryYQoUKceTIEd5++21GjBhB165dqVu3LidOnKBly5b0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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pylab.plot(distances, hf_energies, label='Hartree-Fock')\n",
    "pylab.plot(distances, npme_energies, label='NumPyMinimumEigensolver')\n",
    "pylab.plot(distances, vqe_energies, label='VQE')\n",
    "pylab.xlabel('Interatomic distance')\n",
    "pylab.ylabel('Energy')\n",
    "pylab.title('NaH Ground State Energy')\n",
    "pylab.legend(loc='upper right')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "HF bond distance: 0.70 A, energy: -1.117 Ha\n",
      "VQE bond distance: 0.72 A, energy: -1.137 Ha\n",
      "NumpyMinimumEigensolver bond distance: 0.72 A, energy: -1.137 Ha\n"
     ]
    }
   ],
   "source": [
    "print(f\"\"\"HF bond distance: {distances[hf_energies.index(min(hf_energies))]:.2f} A, energy: {min(hf_energies):.3f} Ha\n",
    "VQE bond distance: {distances[vqe_energies.index(min(vqe_energies))]:.2f} A, energy: {min(vqe_energies):.3f} Ha\n",
    "NumpyMinimumEigensolver bond distance: {distances[npme_energies.index(min(npme_energies))]:.2f} A, energy: {min(npme_energies):.3f} Ha\"\"\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "qiskit==1.1.0\n",
      "qiskit-aer==0.14.2\n",
      "qiskit-algorithms==0.3.0\n",
      "qiskit-ibm-runtime==0.25.0\n",
      "qiskit-machine-learning==0.7.2\n",
      "qiskit-nature==0.7.2\n",
      "qiskit-nature-pyscf==0.4.0\n",
      "qiskit-qasm3-import==0.5.0\n",
      "qiskit-transpiler-service==0.4.5\n"
     ]
    }
   ],
   "source": [
    "! pip freeze | grep qiskit"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
